
01.10.2013, 09:32
|
Аспирант
|
|
Регистрация: 03.10.2009
Сообщений: 57
|
|
Не работает AJAX если есть перевод строки
Добрый день!
Столкнулся с проблемой:
Если в textarea (name=text) содержится текст, в котором есть автоматический перевод на новую строку, который появился из-за того, что не хватило ширины поля ввода, то AJAX запрос не уходит на сервер.
Если перевод строки сделать путем нажатия на enter? все работает.
Подскажите в чем ошибка и как исправить.
Заранее спасибо.
$.ajax(
{
type: "POST",
data: "name=" + $("#name").val() + "&email=" + $("#email").val()
+ "&text=" + $("#text").val(),
url: "/sendmail.php",
success: function(data)
{
alert("Ваше сообщение отправлено на ящик - " + data);
document.getElementById("parent_popup").style.display="none";
$("#text").val("");
}
});
|
|

01.10.2013, 10:18
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Очень сомнительно. Браузер какой? Версия? Демонстрация?
__________________
В личку только с интересными предложениями
|
|

01.10.2013, 11:08
|
 |
Профессор
|
|
Регистрация: 28.03.2012
Сообщений: 376
|
|
$.ajax({
type: "POST",
data: {
name: $("#name").val(),
email: $("#email").val(),
text: $("#text").val()
},
url: "/sendmail.php",
success: function (data) {
alert("Ваше сообщение отправлено на ящик - " + data);
$("#parent_popup").hide();
$("#text").val("");
}
});
|
|

01.10.2013, 12:14
|
Аспирант
|
|
Регистрация: 03.10.2009
Сообщений: 57
|
|
|
|

01.10.2013, 12:22
|
Аспирант
|
|
Регистрация: 03.10.2009
Сообщений: 57
|
|
Сообщение от danik.js
|
Очень сомнительно. Браузер какой? Версия? Демонстрация?
|
Браузер хром29 и IE10
Демонстрация:
http://otvod.net/board/-1,83996
Внизу объявления нажать на конвертик, откроется форма обратной связи.
Текст, который не отправляется:
"Добрый день!
Убедительная просьба, при размещении объявлений, указывать реальное название организации."
|
|

01.10.2013, 12:42
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
JS тут не причем. Запрос успешно отправляется на сервер. Но серверный скрипт почему то выдает 404 Not found.
__________________
В личку только с интересными предложениями
|
|

01.10.2013, 15:14
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
pashin76, открываем скрипт- видим:
$.ajax(
{
type: "POST",
data: {
name: $("#name").val(),
email: $("#email").val(),
text: $("#text").val(),
mail: $("#mail").val(),
board: $("#board").val(),
mes_id: $("#mes_id").val(),
email_id: $("#email_id").val()
},
url: "/sendmail.php",
success: function(data)
{
alert("Ваше сообщение отправлено на ящик - " + data);
$("#parent_popup").hide();
$("#text").val("");
}
});
}
отправляя форму аяксом желательно через form.serialize() либо FormData()
http://jquery-docs.ru/ajax/serialize/ , а не перечислением всех полей
Для serialize:
var form=$('#formreg');
$.ajax({
url: form.attr('action'),
dataType: "html",
type: "POST",
data: form.serialize(),
},
url: "/sendmail.php",
success: function(data)
{
alert("Ваше сообщение отправлено на ящик - " + data);
$("#parent_popup").hide();
$("#text").val("");
}
});
}
Кстать для кодировок windows-1251 - есть проблемы с кодингом/декодингом на серве отправляемой формы, если текст с кирилицей
Значит без геморроя - форму нун отправлять через FormData() - Ищите в инете
Последний раз редактировалось Deff, 01.10.2013 в 23:17.
|
|

01.10.2013, 16:27
|
Профессор
|
|
Регистрация: 12.04.2010
Сообщений: 557
|
|
Сообщение от Deff
|
Кстать для кодировок windows-1251 - есть проблемы с кодингом/декодингом на серве отправляемой формы, если текст с кирилицей
Значит без геморроя - форму нун отправлять через FormData() - Ищите в инете
|
c формдатой и кодировками будет та же фигня - оно так же принудительно кодирует в utf8.
так что на сервере в любом случае надо декодировать из utf8 в строку.
|
|

01.10.2013, 18:24
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Яростный Меч
|
c формдатой и кодировками будет та же фигня - оно так же принудительно кодирует в utf8.
|
Тут сам процесс кодирования jQuery иной для .serialize() на windows-1251
Есть неполный вариант перекодирования => http://jqbook.net.ru/ajax/ajax_win1251.htm
Думаю что с FormData() - траблов быть не должно, посколь перекодирует сам браузер в нужном формате страницы, (а не jQuery) формы же отправляются нормально...
На худой конец отправлять форму через фрейм
Последний раз редактировалось Deff, 01.10.2013 в 18:28.
|
|

01.10.2013, 18:37
|
Профессор
|
|
Регистрация: 12.04.2010
Сообщений: 557
|
|
Сообщение от Deff
|
Думаю что с FormData() - траблов быть не должно, посколь перекодирует сам браузер в нужном формате страницы, (а не jQuery)
|
да, перекодирует браузер, но всегда в utf8, даже если кодировка страницы win1251 (в отличии от сабмита формы)
т.е. в отличии от encodeURIComponent, тут нельзя что-то поменять.
а проблемы особой нет, во всех бэкендах можно указать, в какой кодировке пришли данные (и как из байтов получить строку). имхо, это правильнее, чем хитрить с encodeURIComponent как в примере по ссылке.
|
|
|
|